package com.wave.system.service;

import com.wave.common.core.domain.PageQuery;
import com.wave.common.core.page.TableDataInfo;
import com.wave.system.domain.bo.SysNgRecordBo;
import com.wave.system.domain.vo.SysNgRecordVo;

import java.util.Collection;
import java.util.List;

/**
 * NG记录Service接口
 *
 * @author wave
 * @date 2024-10-12
 */
public interface ISysNgRecordService {

    /**
     * 查询NG记录
     */
    SysNgRecordVo queryById(Long id);

    /**
     * 查询NG记录列表
     */
    TableDataInfo<SysNgRecordVo> queryPageList(SysNgRecordBo bo, PageQuery pageQuery);

    /**
     * 查询NG记录列表
     */
    List<SysNgRecordVo> queryList(SysNgRecordBo bo);

    /**
     * 新增NG记录
     */
    Boolean insertByBo(SysNgRecordBo bo);

    /**
     * 修改NG记录
     */
    Boolean updateByBo(SysNgRecordBo bo);

    /**
     * 校验并批量删除NG记录信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 保存NG和报警记录
     * @param snCode
     * @param reason
     */
    void saveNgAndAlarmRecord(String snCode, String reason);;
}
